Swing Application Framework

The Swing Application Framework (JSR 296) is a Java specification for providing a simple application framework for Swing applications. It defines infrastructure common to most desktop applications, making Swing applications easier to create.

Contents

Features

The JSR 296 specification defines the basic structure of a Swing application. It defines a framework as a small set of extensible classes that define infrastructure common to most desktop applications:

Status and Roadmap

Development on an open source Reference Implementation called appframework was begun in 2006.[1] It was originally expected that this implementation would be the means for integrating JSR 296 into the upcoming Java SE 7 (Dolphin) version of the Java programming language, and the project was scheduled to be included in milestone 5 of the JDK7 development. However, in August 2009, it was announced that the project would not be included due to an inability to reconcile design flaws and achieve consensus among the JSR 296 team before the milestone 5 deadline.[2]

The original Swing Application Framework implementation has been put on hold indefinitely.[3] The last public release of the appframework project is version 1.03.[1]

Forks and Alternatives

Several forks of the original implementation have been started by open source communities, and several other application framework libraries have been created to achieve goals similar to those of JSR 296.

Better Swing Application Framework
The Better Swing Application Framework project, or BSAF, is a fork of version 1.03 of the original appframework project. BSAF was created at Project Kenai in September 2009 and is currently the most active of the forks. Its goals are to eliminate bugs and execute small design fixes on the original appframework implementation while maintaining compatibility with version 1.03.[4]
Guice Utilities & Tools Set
The Guice Utilities & Tools Set, or GUTS, is an implementation of JSR 296 that combines the appframework with the Google Guice Dependency Injection library. Like BSAF, it is also hosted at Project Kenai. Unlike BSAF, GUTS is making a break away from the "problematic singleton"[5][6] pattern. This project began in June 2009, and is currently active.[7]
Swing Application Framework Fork
The Swing Application Framework Fork, or SAFF, is a fork of appframework 1.03. It is currently hosted at GitHub. This project has been dormant since October 2009.[8]
TreasureMap
TreasureMap is a library providing standalone use of appframework 1.03's ResourceMap implementation.[9]
NetBeans Platform
NetBeans Platform robust Swing application framework, with many more features as well as much more documentation.[10]

See also

External links

References